class PubSub {
  constructor(){
    this._events = {}
  }

  // 注册
  on(event, callback) {
    if(this._events[event]){
      // 当前 event 存在，往后添加监听操作
      this._events[event].push(callback)
    } else {
      // 之前没有订阅过
      this._events[event] = [callback]
    }
  }

  // 发布
  emit(event, ...args) {
    let items = this._events[event]
    if (items && items.length) {
      items.forEach(function (callback) {
        callback.call(this, ...args)
      })
    }
  }
}

let ps = new PubSub()
ps.on('事件1', ()=>{
  console.log('事件1执行了')
})

ps.emit('事件1')
